package com.story.api.moduler.user.service;

import com.story.api.common.result.PageResult;
import com.story.api.common.result.ServerResponse;

import java.util.List;

/**
 * @author Administrator
 * @decription 用户服务层
 * @Date 2017-12-14 17:13
 */
public interface UserService {

    /**
     * 用户注册
     * @param phoneNum
     * @param password
     * @return
     */
    public ServerResponse register(String phoneNum,String password);

    /**
     * 绑定用户的手机号
     * @param userId
     * @param content
     * @return
     */
    public ServerResponse updateUser(Integer userId,String content,String type);

    /**
     * 创建用户歌单
     * @param userId
     * @param songListName
     * @return
     */
    public ServerResponse createSongList(Integer userId,String songListName);

    /**
     * 用户更新歌单名
     * @param songListId
     * @return
     */
    public ServerResponse updateSongList(Integer userId,Integer songListId,String songListName);

    /**
     * 用户删除歌单
     * @param userId
     * @param songListId
     * @return
     */
    public ServerResponse deleteSongList(Integer userId,Integer songListId);

    /**
     * 得到一个收藏夹下的视频分页列表
     * @param songListId
     * @return
     */
    public ServerResponse songListDetail(Integer currentPage, Integer pageSize,Integer songListId);

    /**
     * 将歌曲收藏到歌单中
     * @param songListId
     * @param vedioId
     * @return
     */
    public ServerResponse addVedioToSongList(Integer songListId,Integer vedioId);

    /**
     * 从收藏夹中删除视频
     * @param songListId
     * @param vedioId
     * @return
     */
    public ServerResponse deleteVideoFromSongList(Integer songListId,Integer vedioId);

    /**
     * 更新头像
     * @param userId
     * @param avatar
     * @return
     */
    public boolean updateUserAvatar(Integer userId,String avatar);

    /**
     * 修改密码
     * @param phoneNum
     * @param password
     * @return
     */
    public ServerResponse updatePwd(String phoneNum,String password);

    /**
     * 校验旧密码
     * @param userId
     * @param oldPassword
     * @return
     */
    public boolean checkOldPassword(Integer userId,String oldPassword);

    /**
     * 修改密码
     * @param userId
     * @param password
     */
    public void updatePwdByUserId(Integer userId,String password);

    /**
     * 分页查询用户视频收藏列表
     * @param currentPage
     * @param pageSize
     * @param userId
     * @param resType
     * @return
     */
    public ServerResponse userVideoList(Integer currentPage,Integer pageSize,Integer userId,Integer resType);

    /**
     * 用户收藏视频
     * @param userId
     * @param videoId
     * @return
     */
    public ServerResponse userCollectVideo(Integer userId,Integer videoId);

    /**
     * 用户删除收藏
     * @param userId
     * @param videoId
     * @return
     */
    public ServerResponse userDeleteVideo(Integer userId,Integer videoId);

    /**
     * 用户批量删除收藏的视频
     * @param userId
     * @param videoIdList
     * @return
     */
    public ServerResponse userBatchDelVideo(Integer userId, List<Integer> videoIdList);

    /**
     * 判断用户手否已经收藏该视频
     * @param userId
     * @param videoId
     * @return
     */
    public ServerResponse isCollectVideo(Integer userId,Integer videoId);

    /**
     * 用户播放资源分页列表
     * @param currentPage
     * @param pageSize
     * @param userId
     * @return
     */
    PageResult userPlayRecordList(Integer currentPage,Integer pageSize,Integer userId,Integer resType);

    /**
     * 批量删除播放记录
     * @param resourceIds
     * @param userId
     */
    void delPlayRecord(List<Integer> resourceIds,Integer userId);
}
